{
    // 类型别名
    // :xxx 类型注解
    type Student = {
        name: string 
        gender: 0 | 1 // 联合类型
        score: number
        height?: number
        // 不用箭头函数的写法 study(): void 要把他改成可选 study?(): void
        study?(skill: string): boolean 
        play?: (game: string) => void
        fn?(): void
    }

    const studentA: Student = {
        name: 'zs',
        gender: 0,
        score: 90,
        study(skill) {
            console.log(skill);
            return true
        }
    }
    console.log(studentA.name)
    studentA.study?.('vue')
    // 第一个解决方案 可选链
    // studentA.play?.('王者荣耀')
    // 第二个解决方案 做判断
    // if (studentA.play) {
    //     studentA.play('aaa')
    // }
    // 第三个解决方案 && 条件为真才会往后走
    // studentA.play && studentA.play('bbb')
    // ts严谨 写代码的时候把错误暴露出来
    // 倾向js 写起来简单方便 但可能会出现方便
    // 写ts 要写类型注解 虽然前期感觉很麻烦，但维护起来是方便 找代码的问题也比较容易 
    // ts在写代码的时候就能发现问题，js在浏览器运行的时候才能发现（这个时候已经晚了）
    studentA.height?.toFixed()
    studentA.study?.('vue3')
}
export { }
